var deck = {
  suits: ["hearts", "spades", "clubs", "diamonds"],
  cards: Array(52),
  createCardPicker: function () {
    return () => {
      var pickedCard = Math.floor(Math.random() * 52);
      var pickedSuit = Math.floor(pickedCard / 13);
      return { this: this };
    };
  },
};
// 解析开始： deck.createCardPicker 是一个函数 返回了一个函数 所以这个话解析以后就是
var cardPicker = deck.createCardPicker();
// 解析第一步  现在的 cardPicker 指向了一个函数
// let cardPicker =function() {
//             let pickedCard = Math.floor(Math.random() * 52);
//             let pickedSuit = Math.floor(pickedCard / 13);
//             return {suit: this.suits[pickedSuit], card: pickedCard % 13};
// };
// 此处在调用这个函数
var pickedCard = cardPicker();
// let pickedCard = Math.floor(Math.random() * 52);
// let pickedSuit = Math.floor(pickedCard / 13);
// 把变量放进去以后 就变成 一个对象 发现对象中含有this 这个this 是window对象
// 因为这个方法不属于某个对象的调用 无奈只能在非严格模式下指向window
// 严格模式下就是 undefined
// let pickedCard = {suit: this.suits[Math.floor( Math.floor(Math.random() * 52) / 13)], card:  Math.floor(Math.random() * 52) % 13};
console.log("查看this是什么", pickedCard["this"]);
